Digital video compression is incorporated into a wide range of devices, including modern consumer electronics, portable and personal communication devices, wireless and wired networking products, broadband networks and multi-media applications. A number of different standards of digital video compression have emerged including MPEG-4, H. 264/AVC, HEVC, VP8, VP9, AVS2 and extensions of such standards.
Although a full hardware video encoder or video codec meets the performance requirements for video compression techniques, the cost of such a full hardware solution is still high. Computation capability of a programmable engine (i.e., a software engine which performs functions by instruction execution) becomes powerful nowadays, but still can't meet the high-end specification of video encoding, such as 720p@30 fps or 1080p@30 fps encoding. In addition, power consumption of the programmable engine is higher than that of the full hardware solution. Furthermore, the memory bandwidth could be another issue when a programmable engine is used. Besides, resource of the programmable engine could be time-variant during video encoding when different applications, including an operation system (OS), are also running on the same programmable engine.
Thus, there is a need for an innovative video encoding design which can take advantage and benefit possessed by hardware-based implementation and software-based implementation to accomplish the video encoding operation.